package com.victualler.core.config.menu.repository;


import com.victualler.core.base.repository.IBaseQueryRepository;
import com.victualler.core.common.dto.PageDto;
import com.victualler.core.config.menu.dto.MenuDto;
import com.victualler.core.config.menu.dto.request.MenuRequestDto;
import com.victualler.core.config.menu.dto.response.MenuResponseDto;
import com.victualler.core.config.menu.entity.MenuDao;

import java.util.List;


/**
 * @author Guoshichang
 * @function 封装用于复杂sql查询的API. 为每个实体的repository层提供便利操作
 */
public interface MenuQueryRepository extends IBaseQueryRepository<MenuDao,Long> {
    /**
     * @author Guoshichang
     * @since 14:48 on 2018/7/6.
     * @param roleIds
     * @Function  获得某些角色下对应的菜单,(根据 角色对应的权限查询)
     */
    public List<MenuDto> getMenuListByRoles(List<Long> roleIds);

    /**
     * @author Guoshichang
     * @since 13:39 on 2018/7/7.
     * @param menuRequestDto
     * @Function  根据条件入参PermissionRequestDto动态分页查询权限
     */
    public PageDto<MenuResponseDto> getByRequestDto(MenuRequestDto menuRequestDto, int from , int limit);

    /**
     * @author Guoshichang
     * @since 19:39 on 2018/9/15.
     * @return
     * @Function 查询所有
     */
    public List<MenuDto> getAll();
}
